package br.com.peri.conceito.action.pessoa;

import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;

import br.com.peri.Pessoa;
import br.com.peri.conceito.action.AppAction;
import br.com.peri.conceito.modelo.PessoaApp;

@Name("pessoaAction")
@Scope(ScopeType.CONVERSATION)
public class PessoaAction extends AppAction {

	private Pessoa pessoa;

	private Long idPessoaSelecionada;

	private int numeroDetalhe = 1;

	//@In(value = "pessoaAppWs", create = true)
	@In(value = "pessoaAppRest", create = true)
	private PessoaApp pessoaApp;

	public void pesquisar() throws Exception {
		pessoa = (Pessoa) pessoaApp.pesquisarPorParamentros(pessoa);
	}
	public String atualizar() throws Exception {
		pessoaApp.atualizar(pessoa);
		statusMessages.clearGlobalMessages();
		statusMessages.add("Registro Atualizado com Sucesso");
		return "success";
	}

	public String remover() throws Exception {
		pessoa = new Pessoa();
		pessoa.setId(idPessoaSelecionada);
		pessoaApp.excluir(pessoa);
		statusMessages.clearGlobalMessages();
		statusMessages.add("Registro removido com Sucesso");
		return "success";
	}

	public String salvar() throws Exception {
		if (pessoa.getId() == null) {
			pessoaApp.salvar(pessoa);
		} else {
			pessoaApp.atualizar(pessoa);
		}
		statusMessages.clearGlobalMessages();
		statusMessages.add("Registro Salvo com Sucesso");
		return "success";
	}

	public String prepararInclusao() throws Exception {
		if (pessoa == null) {
			pessoa = new Pessoa();
		}
		return "success";
	}

	public void addNovoDetalhe() {
		// nada a fazer
	}

	public String prepararEdicao() throws Exception {
		pessoa = new Pessoa();
		pessoa.setId(idPessoaSelecionada);
		pessoa = pessoaApp.pesquisarPorId(pessoa);
		return "success";
	}

	public Pessoa getPessoa() {
		return pessoa;
	}

	public void setPessoa(Pessoa pessoa) {
		this.pessoa = pessoa;
	}

	public Long getIdPessoaSelecionada() {
		return idPessoaSelecionada;
	}

	public void setIdPessoaSelecionada(Long idPessoaSelecionada) {
		this.idPessoaSelecionada = idPessoaSelecionada;
	}

	public int getNumeroDetalhe() {
		return numeroDetalhe;
	}

	public void setNumeroDetalhe(int numeroDetalhe) {
		this.numeroDetalhe = numeroDetalhe;
	}
}
